package com.lwm.service;

import com.github.pagehelper.PageInfo;
import com.lwm.domain.Device;
import com.lwm.domain.ResponseResult;

import java.util.List;

public interface DeviceService {
    /**
     * 保存
     *
     * @param device 设备
     * @return {@link ResponseResult}<{@link Object}>
     */
    ResponseResult<Object> save(Device device);

    /**
     * 删除
     *
     * @param ids 设备id集合
     * @return {@link ResponseResult}<{@link Object}>
     */
    ResponseResult<Object> remove(List<Long> ids);

    /**
     * 数据处理
     * 对于分类编码进行处理
     * 如：TM1223 拼接上 - 和 雪花id => TM123-xx...
     *
     * @param ids id集合
     */
    void handleData(List<Long> ids);

    /**
     * 编辑
     *
     * @param device 设备
     * @return {@link ResponseResult}<{@link Object}>
     */
    ResponseResult<Object> edit(Device device);

    /**
     * 分页
     *
     * @param page   页码
     * @param size   数量
     * @param device 设备
     * @return {@link ResponseResult}<{@link PageInfo}<{@link Device}>>
     */
    ResponseResult<PageInfo<Device>> page(Integer page, Integer size, Device device);

    /**
     * 根据id查询
     *
     * @param id 设备id
     * @return {@link ResponseResult}<{@link Object}>
     */
    ResponseResult<Object> getById(Long id);

    /**
     * 根据id集合查询
     *
     * @param deviceIds 设备id
     * @return {@link ResponseResult}<{@link List}<{@link Device}>>
     */
    ResponseResult<List<Device>> getByIds(List<Long> deviceIds);
}
